/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package DTD.Diccionario;

import java.util.ArrayList;

/**
 * Clase que maneja dos tipos de elementos:
 * Empty, o vacios, que solo pueden contener atributos, ejemplo <!ELEMENT element-name EMPTY>
 * Any, o cualquiera, que pueden contener cualquier combinación de datos parseable, ejemplo: <!ELEMENT element-name ANY>
 * @author Administrador
 */
public class DiccionarioElemento implements IDiccionario {
    private ArrayList<String> palabras;//lista de palabras reservadas para los tipos de elementos
    private int tipo;//tipo de dicionario de elemento

     /**
     * Constructor
     */
    public DiccionarioElemento() {
        palabras  = new ArrayList<String>();
        this.tipo = DiccionarioElemento.ELEMENT_OPCIONAL;
        cargar();
    }

     /**
     * Determina si la cadena recibida por parámetro es un tipo de elemento especificado
     * @param palabra String a validar
     * @return True si es ese tipo de elemento, false en caso contrario
     */
    public boolean existe(String palabra) {
        return palabras.contains(palabra);
    }

    /**
     * Carga todos los tipos de elementos 
     */
    private void cargar() {
        palabras.add("ANY");
        palabras.add("EMPTY");
    }

    /**
     * Mètodo que devuelve el identificador correspondiente al diccionario de
     * elementos
     * @return int que corresponde a tipo de dato
     */
    public int getTipoDiccionario() {
        return this.tipo;
    }

}
